/*
 * CommandsModuleBridge.h
 *
 *  Created on: Dec 12, 2014
 *      Authors: Avihay Avitan & Stefan Farcas
 */

#ifndef COMMANDSMODULEBRIDGE_H_
#define COMMANDSMODULEBRIDGE_H_

#include "../Satellite/SatelliteUplinkCommand.h"
#include "../GSLogger/Logger.h"
#include "../Pass/PassVector.h"
#include "../ProgressStatus/ProgressStatus.h"
using namespace ProgressStatusSpace;

using namespace SatelliteNameSpace;
using namespace PassVectorSpace;
namespace CommandsModuleBridgeSpace {

/**
 * CommandsModuleBridge define the interface to load uplink commands for specific satellite
 * see [CommandsModule], [CommandsModuleFiles] sections in core.ini file
 */
class CommandsModuleBridge {

public:
	CommandsModuleBridge();
	virtual ~CommandsModuleBridge();
	/**
	 * loading uplink commands for specific pass defined by PassVector
	 * pass - the next satellite pass which need to load commands to.
	 * returns true if success loading commands
	 */
	virtual bool loadUplinkCommands(PassVector * pass)=0;

protected:
	Logger * logger;
} ;

} /* namespace CommandsModuleBridge */

#endif /* COMMANDSMODULEBRIDGE_H_ */
